package com.module2;
//编写测试类使用多态格式分别调用上述方法，方法体中打印一句话进行功能模拟即可。
public class Q3_Test {
    public static void main(String[] args) {
//      1，多态创建Q3_CallPlan类
        Q3_AbstractPlan callPlan = new Q3_CallPlan();
//      2，因为Q3_CallPlan类中重写了Q3_AbstractPlan类中show方法，调用出来为Q3_CallPlan的show();
        callPlan.show();
//      3，Q3_AbstractPlan类中没有call()方法,强制转换到子类型后调用
        ((Q3_CallPlan)(callPlan)).call(((Q3_CallPlan)(callPlan)).callTime,((Q3_CallPlan)(callPlan)).phone);
//      4，多态创建Q3_InternetPlan类
        Q3_AbstractPlan internetPlan = new Q3_InternetPlan();
//      5，因为Q3_InternetPlan类中重写了Q3_AbstractPlan类中show方法，调用出来为Q3_InternetPlan的show();
        internetPlan.show();
//      6，Q3_AbstractPlan类中没有internet()方法,强制转换到子类型后调用
        ((Q3_InternetPlan)(internetPlan)).internet(((Q3_InternetPlan)(internetPlan)).internetData,((Q3_InternetPlan)(internetPlan)).phone);
//      7，普通对象生成调用，因为用了枚举类型，枚举类型构造方法也会进行打印
        Q3_PhoneCard phoneCard=new Q3_PhoneCard();
        phoneCard.show();
//      8，声明构造方法打印
        Q3_UserCostInfo userCostInfo=new Q3_UserCostInfo();


    }
}
